package com.voxel.sense.infomsg.module.task.execution.file;

import com.example.com.common.app.BaseContract;
import com.voxel.sense.infomsg.data.bean.MultiItemBean;

import java.util.List;

/**
 * @author ChenYiYao
 * @date 2018/5/14
 * des :
 */
public class TaskFileOperationContract {

    /**
     * recyclerView的item类型
     */
    final public static int ADD_TYPE = 1; //头item
    final public static int NET_IMAGE_TYPE = 3; //网络图片
    final public static int LOCAL_IMAGE_TYPE = 4;//本地图片
    final public static int NET_DOC_TYPE = 5;
    final public static int LOCAL_DOC_TYPE = 6;
    final public static int VIDEO_TYPE = 7;
    final public static int IMAGE_DESC_TYPE = 8;
    final public static int DOC_DESC_TYPE = 9;

    interface Presenter extends BaseContract.Presenter {

        void getFileList(String TaskNumb);

        /**
         * @param taskNum     任务编号
         * @param addFiles    新增文件
         * @param removeFiles 移除的文件
         */
        void doUploadFile(String taskNum, List<MultiItemBean<String>> addFiles, String formContents, List removeFiles);

        //添加图片

        /**
         * 新增图片
         *
         * @param AdapterDatas 已存在的数据源
         * @param list         新增数据
         */
        void doAddImage(List<MultiItemBean<String>> AdapterDatas, List<String> list);

        /**
         * 新增文档
         *
         * @param AdapterDatas 已存在的数据源
         * @param list         新增数据
         */
        void doAddSelelctDocs(List<MultiItemBean<String>> AdapterDatas, List<String> list);

        /**
         * 移除文件
         *
         * @param AdapterDatas
         * @param removeBean
         */
        void removeFile(List<MultiItemBean<String>> AdapterDatas, MultiItemBean<String> removeBean);

        /**
         * 查看文档文件
         */
        void LookDocs(MultiItemBean<String> bean);

    }

    interface View extends BaseContract.View<Presenter> {
        /**
         * 刷新文件列表
         */
        void onRefreshFilesList(List list);

        /**
         * 上传成功 失败
         */
        void onUploadSuccess();

        /**
         * 上传失败
         */
        void onUploadFailure();

        void notifychange();

        /**
         * @param imageCount 图片的数量
         */
        void onRecordImageCount(int imageCount, String content);

        /**
         * @param docCount 文档的数量
         */
        void onRecordDocCount(int docCount);
    }
}
